package com.example.test.advice.第五章_数组和集合.建议76_集合运算时使用更优雅的方式;

import java.util.ArrayList;
import java.util.List;

public class Client {

    public static void main(String[] args) {
        getUnionAll();
        System.out.println();
        //交集
        getIntersection();
        System.out.println();
        //差集
        getDiffrence();
        System.out.println();
        //无重复并集
        getUnion();
    }

    //并集
    public static void getUnionAll(){
        List<String> list1 = new ArrayList<>();
        list1.add("A");
        list1.add("B");
        List<String> list2 = new ArrayList<>();
        list2.add("C");
        list2.add("B");
        //并集
        list1.addAll(list2);
        list1.forEach(System.out::println);
    }

    //交集
    public static void getIntersection(){
        List<String> list1 = new ArrayList<>();
        list1.add("A");
        list1.add("B");
        List<String> list2 = new ArrayList<>();
        list2.add("C");
        list2.add("B");
        list1.retainAll(list2);
        list1.forEach(System.out::println);
    }

    //差集
    public static void getDiffrence(){
        List<String> list1 = new ArrayList<>();
        list1.add("A");
        list1.add("B");
        List<String> list2 = new ArrayList<>();
        list2.add("C");
        list2.add("B");
        list1.removeAll(list2);
        list1.forEach(System.out::println);
    }

    //无重复并集
    public static void getUnion(){
        List<String> list1 = new ArrayList<>();
        list1.add("A");
        list1.add("B");
        List<String> list2 = new ArrayList<>();
        list2.add("C");
        list2.add("B");
        //并集
        list2.removeAll(list1);
        list1.addAll(list2);
        list1.forEach(System.out::println);
    }
}